<html>
<head><meta charset="utf-8"><title>two chalk solvers · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html">two chalk solvers</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="237727472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237727472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237727472">(May 06 2021 at 20:59)</a>:</h4>
<p>I was looking through the chalk book and saw that there were two solvers (SLG and recursive?) and was wondering why this is</p>



<a name="237733425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237733425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237733425">(May 06 2021 at 21:25)</a>:</h4>
<p>The SLG solver came first, the recursive one was added later</p>



<a name="237733468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237733468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237733468">(May 06 2021 at 21:25)</a>:</h4>
<p>IIRC mainly to address some shortcomings involving associated types</p>



<a name="237733575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237733575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237733575">(May 06 2021 at 21:26)</a>:</h4>
<p>is the SLG solver still used or is the recursive solver basically "the" solver?</p>



<a name="237733647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237733647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237733647">(May 06 2021 at 21:27)</a>:</h4>
<p>rust-analyzer uses the recursive solver, but I believe chalk internally has tests for both</p>



<a name="237733699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237733699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237733699">(May 06 2021 at 21:28)</a>:</h4>
<p>not sure if there's any concrete plans to retire the SLG solver</p>



<a name="237734194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237734194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237734194">(May 06 2021 at 21:32)</a>:</h4>
<p>neat okay <span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span></p>



<a name="237734231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237734231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237734231">(May 06 2021 at 21:33)</a>:</h4>
<p>thanks :)</p>



<a name="237735680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237735680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237735680">(May 06 2021 at 21:46)</a>:</h4>
<p>(IIRC the recursive solver is the initial one, but was deleted after SLG became the default, and then florian resurrected it)</p>



<a name="237735738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237735738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237735738">(May 06 2021 at 21:46)</a>:</h4>
<p><span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span> complex history</p>



<a name="237736189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736189">(May 06 2021 at 21:51)</a>:</h4>
<p>there are no plans to retire either solver right now that I know of, it might be possible to fix the associated type problems in the SLG solver and it may turn out to be the better one, or not</p>



<a name="237736229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736229">(May 06 2021 at 21:51)</a>:</h4>
<p>is there a writeup somewhere of the "associated type problems" in the SLG solver?</p>



<a name="237736380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736380">(May 06 2021 at 21:53)</a>:</h4>
<p><a href="https://github.com/rust-lang/chalk/issues/234">https://github.com/rust-lang/chalk/issues/234</a></p>



<a name="237736389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736389">(May 06 2021 at 21:53)</a>:</h4>
<p>my recollection was that you brought back the recursive solver because it was more natural to support fuel, which was interesting for r-a, is that accurate ?</p>



<a name="237736392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736392">(May 06 2021 at 21:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/144729-wg-traits/topic/two.20chalk.20solvers/near/237735680">said</a>:</p>
<blockquote>
<p>(IIRC the recursive solver is the initial one, but was deleted after SLG became the default, and then florian resurrected it)</p>
</blockquote>
<p>huh, TIL</p>



<a name="237736395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736395">(May 06 2021 at 21:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/144729-wg-traits/topic/two.20chalk.20solvers/near/237735680">said</a>:</p>
<blockquote>
<p>(IIRC the recursive solver is the initial one, but was deleted after SLG became the default, and then florian resurrected it)</p>
</blockquote>
<p>this is correct; The recursive solver was the initial one</p>



<a name="237736408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736408">(May 06 2021 at 21:53)</a>:</h4>
<p>right, fuel was important for r-a</p>



<a name="237736424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736424">(May 06 2021 at 21:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/144729-wg-traits/topic/two.20chalk.20solvers/near/237736389">said</a>:</p>
<blockquote>
<p>my recollection was that you brought back the recursive solver because it was more natural to support fuel, which was interesting for r-a, is that accurate ?</p>
</blockquote>
<p>actually, I don't think the recursive solver supports fuel</p>



<a name="237736477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736477">(May 06 2021 at 21:54)</a>:</h4>
<p>The SLG solver has a mechanism to "cancel" solving partway through</p>



<a name="237736494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736494">(May 06 2021 at 21:54)</a>:</h4>
<p>hmm, we definitely use fuel in r-a though</p>



<a name="237736519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736519">(May 06 2021 at 21:54)</a>:</h4>
<p>nope, we used to use fuel when we were using the SLG solver, and now with the recursive solver we don't anymore</p>



<a name="237736521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736521">(May 06 2021 at 21:54)</a>:</h4>
<p>hmm...</p>



<a name="237736560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736560">(May 06 2021 at 21:55)</a>:</h4>
<p>Anyways, a quick overview of pros/cons between SLG solver and recursive solver:</p>



<a name="237736652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736652">(May 06 2021 at 21:55)</a>:</h4>
<p>1) <em>Technically</em>, the SLG solver is more "complete" (there's an example in the Chalk book on this). But that particular example even the current rustc trait solver can't support</p>



<a name="237736671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736671">(May 06 2021 at 21:55)</a>:</h4>
<p>the code for fuel is actually still there in RA, but it's ineffective right now <span aria-label="grimacing" class="emoji emoji-1f62c" role="img" title="grimacing">:grimacing:</span></p>



<a name="237736836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736836">(May 06 2021 at 21:57)</a>:</h4>
<p><span class="user-mention silent" data-user-id="129457">Florian Diebold</span> <a href="#narrow/stream/144729-wg-traits/topic/two.20chalk.20solvers/near/237736671">said</a>:</p>
<blockquote>
<p>the code for fuel is actually still there in RA, but it's ineffective right now <span aria-label="grimacing" class="emoji emoji-1f62c" role="img" title="grimacing">:grimacing:</span></p>
</blockquote>
<p>aah I think this is what I was seeing then</p>



<a name="237736849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736849">(May 06 2021 at 21:57)</a>:</h4>
<p>2) The SLG solver has some problems with projections when it comes to finding the same answer for a "associated type placeholder" and the actually associated type. It finds two answers but doesn't know they are "the same". This is <a href="https://github.com/rust-lang/chalk/issues/234">chalk#234</a> and something I've thought about and keep trying to get back to. The recursive solver, on the other hand, solves this problem with <code>ClausePriority</code>s</p>



<a name="237736951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736951">(May 06 2021 at 21:58)</a>:</h4>
<p>which are pretty much a hack</p>



<a name="237736952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237736952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237736952">(May 06 2021 at 21:58)</a>:</h4>
<p>3) The recursive solver still has <em>some</em> problems, like <a href="https://github.com/rust-lang/chalk/issues/587">chalk#587</a>. But I'm sure those are just bugs to find and patch</p>



<a name="237737001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237737001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237737001">(May 06 2021 at 21:58)</a>:</h4>
<p><span class="user-mention silent" data-user-id="129457">Florian Diebold</span> <a href="#narrow/stream/144729-wg-traits/topic/two.20chalk.20solvers/near/237736951">said</a>:</p>
<blockquote>
<p>which are pretty much a hack</p>
</blockquote>
<p>eh. I mean, it's a hack and it's not. It's "well-defined" but logically it's a band-aid</p>



<a name="237737109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237737109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237737109">(May 06 2021 at 21:59)</a>:</h4>
<p>yeah, it makes it harder to reason about the solver</p>



<a name="237737124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237737124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237737124">(May 06 2021 at 22:00)</a>:</h4>
<p>As far as whether we will retire one or the other? Probably <em>at some point</em>. But not until we have good data on which one will be better long term</p>



<a name="237737205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237737205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237737205">(May 06 2021 at 22:00)</a>:</h4>
<p>thanks for this comparison between the 2</p>



<a name="237737301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237737301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237737301">(May 06 2021 at 22:00)</a>:</h4>
<p>For example: Do we <em>care</em> about the cases that the recursive solver can't solve? Are there any perf implications? What about potential future expansions to the language? etc. etc.</p>



<a name="237737962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237737962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237737962">(May 06 2021 at 22:06)</a>:</h4>
<p>The approaches to caching are also different. The recursive one could potentially integrate with salsa very well, if there's a solution for cycles</p>



<a name="237738291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237738291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237738291">(May 06 2021 at 22:09)</a>:</h4>
<p>thanks for the list of things <span class="user-mention" data-user-id="232957">@Jack Huey</span> that was informative <span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span></p>



<a name="237738432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237738432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237738432">(May 06 2021 at 22:10)</a>:</h4>
<p>I think we should put this info in the Chalk book if it isn't already</p>



<a name="237738476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237738476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237738476">(May 06 2021 at 22:10)</a>:</h4>
<p>i dont <em>think</em> this is in the book, i dont remember reading this atleast</p>



<a name="237738511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237738511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237738511">(May 06 2021 at 22:11)</a>:</h4>
<p>i was pretty tired when i got to the last section though so I might have missed it</p>



<a name="237739022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237739022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237739022">(May 06 2021 at 22:15)</a>:</h4>
<p>I feel Niko talked a bit about cycles in salsa in yesterday’s interview with jonathan turner, I remember hearing "but I know how to make it work, I think" :)</p>



<a name="237739069"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237739069" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237739069">(May 06 2021 at 22:15)</a>:</h4>
<p>Link?</p>



<a name="237739131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237739131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237739131">(May 06 2021 at 22:16)</a>:</h4>
<p><a href="https://youtu.be/alD0l_8W9Sc">https://youtu.be/alD0l_8W9Sc</a></p>
<div class="youtube-video message_inline_image"><a data-id="alD0l_8W9Sc" href="https://youtu.be/alD0l_8W9Sc"><img src="https://uploads.zulipusercontent.net/e762af4da097d56f2d1fdc7476ef41b14d0581be/68747470733a2f2f692e7974696d672e636f6d2f76692f616c44306c5f38573953632f64656661756c742e6a7067"></a></div>



<a name="237739307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237739307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237739307">(May 06 2021 at 22:18)</a>:</h4>
<p>(IIRC it was in the chalk segment, but it was just in passing, no details per se, which is understandable for a conversation)</p>



<a name="237739622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237739622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237739622">(May 06 2021 at 22:20)</a>:</h4>
<p>Things to listen to at work :)</p>



<a name="237749131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237749131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237749131">(May 07 2021 at 00:08)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116113">lqd</span> <a href="#narrow/stream/144729-wg-traits/topic/two.20chalk.20solvers/near/237739131">said</a>:</p>
<blockquote>
<p><a href="https://youtu.be/alD0l_8W9Sc">https://youtu.be/alD0l_8W9Sc</a></p>
</blockquote>
<p>this was interesting to listen to thanks for linking this <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="237817365"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817365" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817365">(May 07 2021 at 12:55)</a>:</h4>
<p>the recursive solver has some other advantages</p>



<a name="237817404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817404">(May 07 2021 at 12:55)</a>:</h4>
<p>in particular I keep meaning to push on integrating it deeply with salsa</p>



<a name="237817658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817658">(May 07 2021 at 12:56)</a>:</h4>
<p>Yeah, <span class="user-mention" data-user-id="129457">@Florian Diebold</span> mentioned that :)</p>



<a name="237817834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817834">(May 07 2021 at 12:58)</a>:</h4>
<p>oh, missed it</p>



<a name="237817861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817861">(May 07 2021 at 12:58)</a>:</h4>
<p>that said, I think long term we may want neither of the two</p>



<a name="237817876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817876">(May 07 2021 at 12:58)</a>:</h4>
<p>but something else</p>



<a name="237817913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817913">(May 07 2021 at 12:58)</a>:</h4>
<p><span aria-label="sparkles" class="emoji emoji-2728" role="img" title="sparkles">:sparkles:</span></p>



<a name="237817919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817919">(May 07 2021 at 12:59)</a>:</h4>
<p>JIT? <span aria-label="grinning" class="emoji emoji-1f600" role="img" title="grinning">:grinning:</span></p>



<a name="237817944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817944">(May 07 2021 at 12:59)</a>:</h4>
<p>that was my original vision lol</p>



<a name="237817972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817972">(May 07 2021 at 12:59)</a>:</h4>
<p>I watched the interview ;)</p>



<a name="237817984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237817984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237817984">(May 07 2021 at 12:59)</a>:</h4>
<p>ah heh</p>



<a name="237818010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237818010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237818010">(May 07 2021 at 12:59)</a>:</h4>
<p>I'm not trying to be mysterious :) it's just that I think there are a lot of solver experts out there and I would like to learn from them</p>



<a name="237818113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/two%20chalk%20solvers/near/237818113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/two.20chalk.20solvers.html#237818113">(May 07 2021 at 13:00)</a>:</h4>
<p>Sounds great</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>